home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Resources / Sound / AHI / Developer / drivers / wavetools / dad_audio.i next >
Text File  |  1995-12-23  |  6KB  |  186 lines

  1.     IFND    DAD_AUDIO_I
  2. DAD_AUDIO_H    SET    1
  3.  
  4. * C to ASM conversion done by Martin Blom (lcs@lysator.liu.se) 1995-12-16.
  5.  
  6. *************************************************************************
  7. ** $VER: 0.19_BETA dad_audio.h (95.11.15)                              **
  8. ** dad_audio.device include file BETA by Johan Nyblom                  **
  9. ** email: nyblom@mother.ludd.luth.se                                   **
  10. ** All this knowledge has been found by reverse engineering,           **
  11. ** guessing and the use of devmon. It has NOTHING to do with           **
  12. ** Digital Audio Design, the makers of wavetools hardware              **
  13. ** and software.                                                       **
  14. ** I am not responsible for any damage anyone does with this stuff :)  **
  15. ** just so that you know, this is EXTREMELY shaky knowledge.           **
  16. ** Ye have been forewarned!                                            **
  17. *************************************************************************
  18.  
  19.     include exec/io.i    * std DEVICE commands and structures *
  20.  
  21. *  Standard device commands, listed for easy access.
  22. * CMD_INVALID    0 Invalid Command
  23. * CMD_RESET    1 Reset device to orig.state
  24. * CMD_READ    2 Read from device
  25. * CMD_WRITE    3 Write to device
  26. * CMD_UPDATE    4 Process buffer
  27. * CMD_CLEAR    5 Clear all buffers
  28. * CMD_STOP    6 Insert pause
  29. * CMD_START    7 Continue after pause
  30. * CMD_FLUSH    8 Stop current task
  31. *
  32.  
  33. *************************************************************************
  34. **                                                                     **
  35. ** dad_audio.device                                  **
  36. **                                                                     **
  37. *************************************************************************
  38.  
  39. ** CMD_READ    standard device command
  40. **        io_Data = Longword Aligned.
  41. **            data is read into the address in io_Data.
  42. **        io_Offset = -1, it worls with Offset=0 but dad_audio.device
  43. **            returns offset=-1 so why not use it from the start,
  44. **            besides WaveTools(software) uses Offset -1 so...
  45. **
  46. **        Result: buffer is read to address,
  47. **            io_Actual = bytes read
  48. **
  49. **
  50. ** DataFormat is LONG( WORD(left) , WORD(right))
  51. **
  52. **
  53.  
  54.  
  55.  
  56. **
  57. ** dad_audio.device commandon
  58. **
  59.  
  60. DADCMD_BUFFER        EQU    (CMD_NONSTD+0)
  61. DAD_BUFFER_SETUP    EQU    0
  62. DAD_BUFFER_SWITCH    EQU    -1
  63.  
  64.     ** Call with Offset to determine usage,
  65.     ** Offset =     DAD_ BUFFER_SWITCH
  66.     **        Result: io_Actual = number of bytes in presampled buffer.
  67.     **
  68.     ** Offset =     DAD_BUFFER_SETUP
  69.     **         Result:    io_Actual is set to first sampling length (ie max internal buffer size)
  70.     **        usually 8084 but it could differ with another hardware setup.
  71.     **
  72.     **Model:
  73.     **    Suppose the card has 2 onboard buffes, these buffers are 8084 bytes each.
  74.     ** 1.    Setup onboard buffers, returning maximum size in bytes. (8084)
  75.     ** 2.    Next read from the card to a buffer MEMF_24BITDMA or
  76.     **        MEMF_CHIP if you are gonna dump it do disk,
  77.     **        the card starts sampling into buffer1 and let me read it when it is full,
  78.     **        while the card continues to sample into buffer2.
  79.     ** 3.    I am done reading and now switches buffers with the buffer command,
  80.     **        buffer2 is frozen. and sampling to buffer 1 starts,
  81.     **        io_Actual is the length the card managed to sample into buffer2.
  82.     **        io_Error = -128 if overflow(or some error) happened.
  83.     ** 4.    I read from card, getting my data from buffer2 this time.
  84.     **    Then it starts over at 3.
  85.         **
  86.  
  87.  
  88.  
  89. DADCMD_OUTPUTDAMP    EQU    (CMD_NONSTD+2)
  90. DADCONST_MAXDAMP    EQU    31        * value from dad_audio.device *
  91.     **
  92.     ** Set damping on output, io_Data = Damping
  93.     ** The maximum is 31 which gives no sound out and minimum is 0, integer steps.
  94.     ** all other except flags and command should be zero
  95.         **
  96.  
  97.  
  98. DADCMD_INPUTGAIN    EQU    (CMD_NONSTD+3)
  99. DADCONST_MAXGAIN    EQU    15
  100.     **
  101.     ** Set gain on input, io_Data = gain
  102.     ** Maximum = 15, minimum = 0 integer steps
  103.     **
  104.  
  105.  
  106. DADCMD_REPLAYFREQ    EQU    (CMD_NONSTD+4)
  107.     **
  108.     ** set playback frequency io_Data = Frequency.
  109.     ** You can only use a couple of frequencies
  110.     ** see below DADFREQ_*
  111.     **
  112.  
  113.  
  114. DADCMD_INIT1        EQU    (CMD_NONSTD+5)
  115.     **
  116.     ** This is called by WaveTools (sampling software)
  117.     ** with all values = 0 except command,
  118.     ** upon return io_Data = an address which is later used
  119.     ** in the set buffer command. I dont know what this is about
  120.     ** maybe it is auto buffer allocation. Maybe it is base address of the
  121.     ** hardware dma zone or something. But since you can set your own bufferspace,
  122.     ** it doesnt matter.
  123.     **
  124.  
  125.  
  126. DADCMD_MUTE        EQU    (CMD_NONSTD+6)
  127.     **
  128.     ** Mute Internal channels output
  129.     ** io_Data = 0 turns sound off
  130.     ** io_Data = 1 turns them on
  131.     **
  132.  
  133.  
  134. DADCMD_SAMPLEFREQ    EQU    (CMD_NONSTD+7)
  135.     **
  136.     ** set sampling frequency io_Data = frequency
  137.     ** I checked dad_audio.device and it did no real checking of the
  138.     ** frequency, maybe it is linked to replay frequency.
  139.     **
  140.  
  141.  
  142. DADCMD_SMPTE        EQU    (CMD_NONSTD+15)
  143.     **
  144.     ** SMPTE port init, E=-1 if hardware is not there.
  145.     ** I cant check anything more because I havent got the hardware :(
  146.     **
  147.  
  148.  
  149. DADCMD_INIT2        EQU    (CMD_NONSTD+17)
  150.     **
  151.     ** This is an interresting command, it is called with
  152.     ** io_Data = (DADF_SET | DADF_INIT) (ie. $80000001) by wavetools
  153.     ** prior to setting frequency,damping and such.
  154.     ** I dont know what it is, could be internal status bits or something.
  155.     **
  156.  
  157.  
  158. DAD_DEVICENAME MACRO
  159.     dc.b    "dad_audio.device",0
  160.     ENDM
  161.  
  162. **
  163. ** Flags
  164. **
  165. DADB_INIT    EQU    0
  166. DADB_SETFLAG    EQU    31
  167.  
  168. DADF_INIT    EQU    (1<<0)    * $00000001 *
  169. DADF_SETFLAG    EQU    (1<<31)    * $80000000 *
  170.  
  171.  
  172. **
  173. ** Frequencies
  174. **
  175. DADFREQ_48000    EQU    48000    * These values are checked for in dad_audio.device     *
  176. DADFREQ_44100    EQU    44100    * I guess they are the only frequencys alowed        *
  177. DADFREQ_32000    EQU    32000    * they are valid for both sampling and playback        *
  178. DADFREQ_29400    EQU    29400
  179. DADFREQ_24000    EQU    24000
  180. DADFREQ_22050    EQU    22050
  181. DADFREQ_19200    EQU    19200
  182. DADFREQ_17640    EQU    17640
  183.  
  184.  
  185.     ENDC * DAD_AUDIO_H  *
  186.